#ifndef _GBUFFER_H_
#define _GBUFFER_H_

#include <SERender/Resourses/Loader/TextureLoader.h>
#include <memory>

namespace SEngine
{
    struct GBuffer 
    {
        GBuffer() {
            TextureLoader<Texture2D> texLoader;
            texLoader.SetInternalFormat(RGB32F);
            texLoader.SetFormat(RGB);
            texLoader.SetType(FLOAT);
            texLoader.SetParameter(TEXTURE_MAG_FILTER, LINEAR);
            texLoader.SetParameter(TEXTURE_MIN_FILTER, LINEAR);
            texLoader.SetParameter(TEXTURE_WRAP_S, CLAMP_TO_EDGE);
            texLoader.SetParameter(TEXTURE_WRAP_T, CLAMP_TO_EDGE);
            worldPositionRT = texLoader.CreateTexture();
            worldNormalRT = texLoader.CreateTexture();
            worldTangentRT = texLoader.CreateTexture();
        }
        std::shared_ptr<Texture> worldPositionRT;
        std::shared_ptr<Texture> worldNormalRT;
        std::shared_ptr<Texture> worldTangentRT;
    };
} // namespace SEngine


#endif